package xyz.lwm.lazycat.aop.info;

import org.jetbrains.annotations.NotNull;
import xyz.lwm.lazycat.utility.reflect.Annotations;

import java.lang.reflect.Method;

/**
 * 方法信息
 *
 * @author lwm
 */
public interface MethodInfo {

    /**
     * @return 方法名
     */
    @NotNull String getName();

    /**
     * @return 方法注解名
     */
    @NotNull String[] getAnnotationNames();

    /**
     * @return 获取方法
     */
    @NotNull Method getMethod();

    /**
     * @return 获取方法注解
     */
    @NotNull Annotations getAnnotations();

    /**
     * @return 获取方法所在的类信息
     */
    @NotNull ClassInfo getClassInfo();

}
